:root {
    --md-text-font: system-ui, -apple-system, 'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Segoe UI', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
    --md-code-font: 'SF Mono';
    --md-primary-fg-color--light: hsl(0, 0%, 100%, 0.33);
    --md-default-bg-color--light: #fff;
    --md-default-bg-color--dark: hsla(var(--md-hue), 15%, 14%, 1);
    --view-transition-z-index-foreground: 999;
    --view-transition-z-index-background: 1;
    --hero-background-image: linear-gradient(90deg, rgb(104 104 104) 50%, rgb(104 104 104) 50%);
}

[data-md-color-scheme='slate'] {
    --hero-background-image: linear-gradient(90deg, rgb(114 114 114) 50%, rgb(114 114 114) 50%);
}

[data-md-color-primary=white] {
    --md-typeset-a-color: #2080f0;
}

[data-md-color-scheme='slate'][data-md-color-primary=black] {
    --md-typeset-a-color: #2080f0;
}

/* logo */
[data-md-color-scheme="default"] .md-logo img {
    content: url(/assets/images/brand/svg/logo-light.svg);
}

[data-md-color-scheme="slate"] .md-logo img {
    content: url(/assets/images/brand/svg/logo-dark.svg);
}

/* 字体 */
@font-face {
    font-family: 'SF Mono';
    src: url('./fonts/SF-Mono-Regular.otf');
}

/* 告诫 */

.md-typeset .admonition,
.md-typeset details {
    border-width: 0;
    border-left-width: 4px;
}

.md-typeset .admonition.quote,
.md-typeset details.quote {
    border-width: .075rem !important;
    border-color: var(--md-default-fg-color--lightest) !important;
}

[data-md-color-scheme='slate'] .md-typeset .admonition,
[data-md-color-scheme='slate'] .md-typeset details {
    box-shadow: var(--md-shadow-z2) !important;
}

[data-md-color-scheme='slate'] .md-typeset .admonition.quote,
[data-md-color-scheme='slate'] .md-typeset details.quote {
    border-color: var(--md-default-fg-color--lightest) !important;
}

.md-typeset .admonition.tip,
.md-typeset details.tip {
    border-color: #03b803;
}

.md-typeset .tip>.admonition-title:before,
.md-typeset .tip>summary:before {
    background-color: #03b803;
}

.md-typeset .tip>.admonition-title,
.md-typeset .tip>summary {
    background-color: #0094001a;
}

.md-typeset .admonition.tip:focus-within,
.md-typeset details.tip:focus-within {
    box-shadow: 0 0 0 .2rem #0094000a;
}

[data-md-color-scheme="slate"] .md-typeset .admonition.quote,
.md-typeset details.quote {
    border-color: hsla(225deg, 15%, 90%, 0.24);
}

/* 着陆页 */
.home-cmd pre>code {
    padding-right: 3em;
}

.home-cmd .md-clipboard {
    top: calc(100% - 60px);
}

@media screen and (max-width: 768px) {
    .home-cmd .md-clipboard {
        top: calc(100% - 50px);
    }
}

/* 主题覆盖 */
.no-select img {
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
}

.md-header {
    background-color: hsla(240, 9%, 75%, 0.33);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

[data-md-color-scheme='slate'] .md-header {
    background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
}

.md-tabs {
    background-color: hsla(240, 9%, 75%, 0.33);
}

[data-md-color-scheme='slate'] .md-tabs {
    background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
}

.md-banner {
    color: var(--md-default-fg-color--light);
    background-color: hsla(240, 9%, 75%, 0.53);
}

[data-md-color-scheme='slate'] .md-banner {
    background-color: hsla(var(--md-hue), 15%, 9%, 0.83);
}

@media screen and (max-width: 768px) {
    .md-typeset .admonition .tabbed-set {
        width: calc(100vw - 3rem - 2px);
    }

    .md-typeset .admonition .tabbed-labels {
        width: calc(100vw - 3rem - 1.2rem);
        padding-left: .6rem;
    }

    [dir=ltr] .md-header__title {
        margin-left: 6px;
        margin-right: .4rem;
    }
}

.md-tabs__link {
    font-size: 0.8rem !important;
    font-weight: 600 !important;
}

.md-typeset {
    font-size: 16px;
}

.md-typeset .emojione,
.md-typeset .gemoji,
.md-typeset .twemoji {
    height: 100%;
    vertical-align: -0.2em !important;
}

.md-typeset .middle {
    vertical-align: -0.35em !important;
}

.md-select__inner {
    border-radius: 8px;
}

.md-select__inner .md-select__list {
    padding: 8px !important;
    font-size: .75rem !important;
}

.md-select__inner .md-select__list .md-select__item {
    margin: 1px;
    border-radius: 8px;
    transition: background-color 0.2s;
}

[dir=ltr] .md-select__inner .md-select__list .md-select__item .md-select__link {
    border-radius: 8px;
    padding-left: 12px !important;
    padding-right: 12px !important;
}

.md-select__inner .md-select__list .md-select__item:hover {
    background-color: rgb(243, 243, 245);
}

[data-md-color-scheme='slate'] .md-select__inner .md-select__list .md-select__item:hover {
    background-color: rgba(255, 255, 255, 0.07);
}

.palette-icon svg {
    width: 26px;
    height: 26px;
}

@media screen and (max-width: 768px) {
    .palette-icon svg {
        width: 22px;
        height: 22px;
    }
}

/* HERO */
.hero {
    width: 390px;
    max-width: 100vw;
    height: 160px;
    position: absolute;
    margin: 0 auto;
}

.hero-background {
    top: 50%;
    width: 50%;
    height: 80px;
    position: absolute;
    background-image: var(--hero-background-image);
    filter: blur(68px);
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 768px) {
    .hero {
        width: calc(100% - .8rem - 40px);
    }
}

/* 赞助组件 */
.sponsor {
    padding-top: 1rem;
    margin-top: 0;
    border-top: none;
}

.sponsor-title {
    font-size: 1.2rem;
    font-weight: 550;
    font-feature-settings: "kern", "liga";
    color: #444;
    font-family: var(--md-text-font-family);
}

[data-md-color-scheme="slate"] .sponsor-title {
    color: #ddd;
}

.sponsor-title-toc {
    font-weight: 550;
    font-feature-settings: "kern", "liga";
    color: hsl(225deg 0% 46.48% / 56%);
    font-family: var(--md-text-font-family);
}

[data-md-color-scheme="slate"] .sponsor-title-toc {
    color: hsl(225deg 5.64% 68.32% / 56%);
}

.sponsor-toc {
    margin-top: 24px !important;
    border-top: 1px solid var(--md-default-fg-color--lightest) !important;
}

.sponsor .sponsor-label {
    font-size: 0.8rem;
    text-align: center;
    margin-bottom: 0.2rem;
    color: var(--md-default-fg-color);
}

.sponsor .sponsor-wrapper {
    width: 100%;
    padding: 0.5rem 0;
}

.sponsor .sponsor-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center;
    padding: .75rem;
    border-radius: 6px;
    height: 80px;
    max-height: 80px;
    transition: background-color 0.2s, filter 0.3s ease-in-out, opacity 0.3s ease-in-out !important;
}

.sponsor .sponsor-item:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

[data-md-color-scheme="slate"] .sponsor .sponsor-item:hover {
    background-color: rgba(240, 241, 244, 0.024);
}

.sponsor .sponsor-item img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

.sponsor-item-toc {
    margin: 0;
    padding: 14px !important;
    height: 62px !important;
    border-radius: 4px !important;
    box-sizing: border-box;
    flex: 0 0 calc(50% - 2px) !important;
    background-color: var(--md-code-bg-color);
}

.sponsor-item-toc:hover {
    background-color: rgba(0, 0, 0, 0.08) !important;
}

[data-md-color-scheme="slate"] .sponsor-item-toc:hover {
    background-color: rgba(240, 241, 244, 0.1) !important;
}

.sponsor-item-toc-full-row {
    flex: 0 0 100% !important;
}

.sponsor-item-toc-full-row img {
    width: 50% !important;
}

.sponsor-item-toc img {
    width: 100%;
    object-fit: contain;
    filter: grayscale(1) invert(0.6);
    opacity: 0.7;
}

[data-md-color-scheme="slate"] .sponsor-item-toc img {
    filter: brightness(1.3) grayscale(1);
    opacity: 0.75;
}

.sponsor-item-toc:hover img {
    filter: grayscale(0%) !important;
    opacity: 1;
}

.sponsor-flex-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.sponsor-flex-wrapper-toc {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    padding: 0;
    width: 100%;
}

.sponsor-item-flex {
    flex: 0 1 calc(20% - 1rem);
    min-width: 200px;
    max-width: 300px;
}

.sponsor-item-flex img {
    width: 60% !important;
}

@media screen and (max-width: 480px) {
    .sponsor-flex-wrapper {
        gap: 24px;
    }

    .sponsor-title {
        font-size: .8rem;
    }

    .sponsor .sponsor-item {
        height: 40px;
        padding: 2px;
    }

    .sponsor-toc {
        display: none;
    }

    .sponsor-item-flex {
        min-width: 100px;
        max-width: calc(33.33% - 1rem);
    }

    .sponsor-item-flex img {
        transform: scale(1.4);
    }
}

/* 图标动画 */
.heart {
    animation: heart 1000ms infinite;
}

@keyframes heart {

    0%,
    40%,
    80%,
    100% {
        transform: scale(1);
    }

    20%,
    60% {
        transform: scale(1.15);
    }
}

/* TDesign 组件相关 */
.t-tag .t-icon {
    margin-right: 0 !important;
}

[theme-mode="dark"] .t-table {
    --td-bg-color-container: hsla(var(--md-hue), 15%, 14%, 1) !important;
    --td-component-border: hsla(225deg, 15%, 95%, 0.12) !important;
}

[theme-mode="dark"] .t-tag {
    --td-warning-color-light: #cf6e2d48 !important;
}

.t-table--hoverable tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.016) !important;
}

[theme-mode="dark"] .t-table--hoverable tbody tr:hover {
    background-color: rgba(240, 241, 244, 0.016) !important;
}

.t-table--column-fixed .t-table__cell--fixed-left {
    z-index: 4;
}

/* termynal 插件 */
.termy {
    padding: 65px 25px 35px !important;
}

[data-termynal] {
    color: #000 !important;
    background: #f7f7f7 !important;
    box-shadow: var(--md-shadow-z2);
    font-size: 14px !important;
}

[data-md-color-scheme="slate"] [data-termynal] {
    color: #eeeeee !important;
    background: #21252c !important;
    box-shadow: var(--md-shadow-z2);
}

button[data-terminal-control] {
    color: var(--md-typeset-a-color) !important;
}

[data-termynal]:after {
    color: #585858 !important;
}

[data-md-color-scheme="slate"] [data-termynal]:after {
    color: #a2a2a2 !important;
}

/* 切换主题动画 */
::view-transition-old(root),
::view-transition-new(root) {
    animation: none;
    mix-blend-mode: normal;
}

.dark::view-transition-old(root) {
    z-index: var(--view-transition-z-index-foreground);
}

.dark::view-transition-new(root) {
    z-index: var(--view-transition-z-index-background);
}

::view-transition-old(root) {
    z-index: var(--view-transition-z-index-background)
}

::view-transition-new(root) {
    z-index: var(--view-transition-z-index-foreground);
}